package common

/**
sqlite3 gorm2 操作
*/
import (
	"fmt"
	"gorm.io/driver/sqlite"
	"gorm.io/gorm"
	"gorm.io/gorm/logger"
	"log"
	"time"
)

var db *gorm.DB

// InitDB 初始化数据库
func InitDB() {
	logleve := logger.Silent
	if GetServerConfig().Debug {
		logleve = logger.Info
	}

	connect, err := gorm.Open(sqlite.Open("data.db"), &gorm.Config{
		Logger: logger.Default.LogMode(logleve),
	})

	if nil != err {
		fmt.Println(err.Error())
	}

	sqlDB, err := connect.DB()
	if err != nil {
		log.Fatal("数据库连接失败.")
	}
	// SetMaxIdleConns 设置空闲连接池中连接的最大数量
	sqlDB.SetMaxIdleConns(1)
	// SetMaxOpenConns 设置打开数据库连接的最大数量
	sqlDB.SetMaxOpenConns(3)
	// SetConnMaxLifetime 设置了连接可复用的最大时间
	sqlDB.SetConnMaxLifetime(time.Hour)

	db = connect
}

func GetDB() *gorm.DB {
	return db
}